A network consists of several computing devices connected by certain types of cables in a certain architecture and communicating using a certain protocol. An internetwork, like the Internet or a telecommunications private branch exchange (PBX), involves the connection of various networks to each other using one or more networking devices, such as repeaters, switches, bridges, routers and gateways, to make optimum use of available bandwidth and to convert as necessary from one protocol to another. Bandwidth is a measure of potential throughput on a cable, measured, for example, in megabits per second.
Some of these network devices involve programmable processors with corresponding software instruction sets to control operations of the processors. Many of these devices execute a network operating system for controlling the functionality of the device. For example, devices manufactured by Cisco Systems, Inc. operate under control of the Cisco Internetworking Operating System (IOS). Some may include one or more applications programs to provide certain functions.
Network management involves, in part, tracking the topology of the connections between network devices at nodes of the network, configuring the network devices to perform the various functions needed at each node, and checking on the status of the network devices at the nodes at regular times or in response to a request. Often, a computer on a control network connecting the network devices provides centralized network management using a network administration application interacting with the network operating system on the various devices. The controlling network may be the same as the network, as on the Internet. In some circumstances, the controlling network with the central network management computer is a separate network. For example, in an IPX network, the network controlling the network devices is separate from the telecommunications network controlled by the network devices.
Networks are often used to connect relatively inexpensive, low computing power devices, such as personal computer (PC) laptops and handheld devices that run relatively thin client processes, with high powered server devices that run a large number of server processes. A client process sends a message requesting a computing resource to a server process executing on a different device on the network. The server process then provides the requested resource, returning a result, if any, in a response message.
Computer resources include one or more printers or other peripheral devices, data files, or program files, for example. World Wide Web (WWW) browsers are examples of a standard client process communicating using hypertext transfer protocol (HTTP) for resources in the form of Web pages written in HyperText Markup Language (HTML). A great number of Web pages have been developed and are currently available on the Internet. The browsers allow text, graphic, and multi-media information to be received from one or more servers and to be displayed on the PC or other computer executing the browser. Extra functions such as dialog boxes for obtaining user input and performing client-side data validation, and other dynamically generated pages, are provided by programs sent to the browser and launched by the browser. These programs include Java® bytecode for execution by a Java virtual machine installed on the client device, and programs written in a scripting language and launched through Common Gateway Interface (CGI).
To provide network administrators with greater access to network management functions, for example, while traveling with a laptop computer, it is desirable to allow a network administrator to perform network management using a standard Web browser with some client-side scripts. Traditionally, such network management applications are developed using Java or a scripting language with CGI on various devices running the UNIX operating system.
With the release of the Windows 2000 operating system, the Microsoft Internet Information Server (IIS) provides an alternative platform on which to develop applications for access via a Web browser. This platform utilizes a directory system called Active Directory, a database access layer comprising Active Data Objects (ADO), and a scripting language called Active Server Pages (ASP). However, the recent introduction of this platform, compared to UNIX platforms, means that network management tools are not available for developing network management applications on Windows 2000.
In particular, it is desirable to make network management applications device-centric. That is, it is desirable to query and obtain device state information directly from the devices on the network, rather than query a centralized database that may be between updates at the time the database is queried. In addition, it is desirable to respond to events originating in the devices, such as operational errors, as well as to requests originated by the client process. Since ASP is commonly used with ADO in database-centric applications, extra effort is required to develop the code to support device-centric interactions. Since ASP is based on client-generated requests, extra effort is required to develop the code to support device-generated events.
Furthermore, ASP is designed for the Windows operating system. This allows the resulting scripts to run efficiently on the Windows platform, requiring less memory size and central processing unit (CPU) clock time than platform independent code like Java. However, an approach that relies on ASP is not moved to another platform as readily as Java.
Therefore, it is desirable to re-use as much code from one ASP application as possible in a different ASP application. This allows new, efficient platform-dependent applications to be developed more quickly than without re-usable code. However, since ASP is not an object-oriented language, like C++ or Java, ASP does not provide built-in encapsulation or inheritance. In object-oriented languages, the features of encapsulation enhance the reusability and reduce the interdependencies of the produced code.
Based on the foregoing, there is a clear need for techniques to increase the usefulness of platform dependent scripts, like ASP, in applications for Web-based, device-centric network management.